// package com.dms.security.service;

// import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
// import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
// import com.dms.security.entity.User;
// import com.dms.security.entity.Admin;
// import com.dms.security.entity.Merchant;
// import com.dms.security.mapper.UserMapper;
// import com.dms.security.mapper.AdminMapper;
// import com.dms.security.mapper.MerchantMapper;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.security.core.userdetails.UserDetails;
// import org.springframework.security.core.userdetails.UserDetailsService;
// import org.springframework.security.core.userdetails.UsernameNotFoundException;
// import org.springframework.security.core.DisabledException;
// import org.springframework.stereotype.Service;
// import lombok.extern.slf4j.Slf4j;

// @Service
// @Slf4j
// public class UserDetailsServiceImpl implements UserDetailsService {

//     @Autowired
//     private UserMapper userMapper;
    
//     @Autowired
//     private AdminMapper adminMapper;
    
//     @Autowired
//     private MerchantMapper merchantMapper;

//     @Override
//     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//         log.info("用户登录：{}", username);
        
//         // 查询用户信息
//         User user = userMapper.selectOne(new LambdaQueryWrapper<User>()
//                 .eq(User::getUsername, username));
        
//         if (user == null) {
//             log.warn("用户不存在：{}", username);
//             throw new UsernameNotFoundException("用户名或密码错误");
//         }
        
//         // 检查用户状态
//         if (user.getStatus() != 1) {
//             log.warn("用户已被禁用：{}", username);
//             throw new DisabledException("用户已被禁用");
//         }
        
//         // 确保用户角色是正确的
//         // 这里可以根据业务需要决定是否进行验证，如果角色数据已经正确设置，则可以不需要这段代码
//         if (user.getRoleId() == null) {
//             // 如果roleId为空，默认设置为普通用户
//             user.setRoleId(3L);
//             userMapper.updateById(user);
//         }
        
//         return user;
//     }
// } 